home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs05.d81 / heidi.prg (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  5KB  |  158 lines

  1. 10 DIMX$(100),KB$(255):TL=0
  2. 20 SP$="                                        "
  3. 30 POKE53281,0:POKE53280,0:PRINT"":GOSUB2200
  4. 40 V=54272:POKEV+24,13:POKEV+5,8:POKEV+6,0:K1$=LEFT$(SP$,28)
  5. 60 SK$=CHR$(34)+"@&^'&(*)(+-[219][164]-=[221]+@[[186][219]*][192][221]:;[:;']"+CHR$(34)
  6. 70 DK$="11223344556677889900+[-=\"+CHR$(20)+"Q'W,E.RPTYYFUGICORPL@/*]"
  7. 80 DK$=DK$+"AASODEFUGIHDJHKTLN:S;-Z;XQCJVKBXNBMM,W.V/Z"
  8. 90 DK$=DK$+"!!"+CHR$(34)+"@##$$%%&''&(*)([219][219][221]+[209]"+CHR$(34)+"[215]<[197]>[210][208][212][217][217][198][213][199][201][195]"
  9. 100 DK$=DK$+"[207][210][208][204][186]?[192][221][193][193][211][207][196][197][198][213][199][201][200][196][202][200][203][212][204][206][[211]][164][218]:[216][209][195][202][214][203][205][216][206][194][205][205]<[215]>[214]?[218]"
  10. 200 PRINT"[147][154] [200] [197] [201] [196] [201] ' [211]   [212] [217] [208] [201] [206] [199]   [212] [197] [211] [212]  [146]";
  11. 210 PRINT"[152][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]";
  12. 215 IF FX=0THENFX=1:PRINT"[152]          BY  [211]TEVEN [205]OON        1989   ";:GOTO220
  13. 216 PRINTSP$;
  14. 220 PRINT""SP$"[175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]";
  15. 230 PRINT""SP$"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]";
  16. 240 FORI=1TO2:PRINT"  [146]"LEFT$(SP$,36)"  ";:NEXT
  17. 250 PRINT"[175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]";
  18. 260 PRINT"[158]      [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]      ";
  19. 270 FORM=1TO4:PRINT"     [167]";K1$;"[165]     ";:NEXT:IFPEEK(789)=234THENSYS6904
  20. 280 PRINT"      [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]     ";:POKE2023,160:POKE56295,7
  21. 500 PRINT""
  22. 510 PRINT"     1. [212][193][203][197] [212][217][208][201][206][199] [212][197][211][212]"
  23. 520 PRINT"     2. [199][197][212][160][212][197][216][212] [198][210][207][205] [196][201][211][203]"
  24. 530 PRINT"     3. [212][217][208][197] [201][206][160][212][197][216][212] [198][207][210] [212][197][211][212]"
  25. 540 PRINT"     4. [203][197][217][194][207][193][210][196] [204][193][217][207][213][212]"
  26. 550 PRINT"     5. [195][207][206][214][197][210][212] [211][197][209] [212][207] [212][217][208][197] [212][197][216][212]"
  27. 555 PRINT"     6. [193][194][207][213][212][160][212][200][197][160][208][210][207][199][210][193][205]"
  28. 560 PRINT"     9. [209][213][201][212]"
  29. 600 GETA$:A=VAL(A$):IFA=0THEN600
  30. 620 GOSUB8500:ON A GOSUB 1000, 6000,5000,2000,7000,3000,900,900,910
  31. 630 GOTO200
  32. 900 RETURN
  33. 910 X=6:Y=16:GOSUB8700:PRINT"[209][213][201][212] -- ARE YOU SURE (Y/N)[151]"
  34. 920 GETA$:IFA$=""THEN920
  35. 930 IFA$<>"Y"THEN200
  36. 940 PRINT"    [142][147]":SYS6904
  37. 950 END
  38. 1000 IF TL>0 THEN 1100
  39. 1010 X=5:Y=16:GOSUB8700:PRINT"NO TEXT IN MEMORY";:GOSUB8000:RETURN
  40. 1100 GOSUB8800:GOSUB8500:ER=0:X=0:Y=3:GOSUB8700
  41. 1110 PRINT"";X$(1)"[155]":PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][151]";
  42. 1120 FORI=2TO4:PRINTLEFT$(X$(I)+SP$,40);"";:NEXT:Z1=FRE(0):GOSUB8510
  43. 1200 FORD=1TOTL:R=LEN(X$(D)):X=0:Y=14:GOSUB8700:PRINT"";
  44. 1210 FORJ=1TOR:W=1143+J:POKEW,PEEK(W)+128
  45. 1220 GETA$:IFA$=""THEN1220
  46. 1290 IF(D=1)AND(J=1)THENTI$="000000"
  47. 1300 A$=KB$(ASC(A$)):IF(A$="0")AND(PEEK(643)=1)THENA$=")"
  48. 1305 IFA$=MID$(X$(D),J,1)THEN1320
  49. 1310 FORK=1TO5:GOSUB8200:NEXT::ER=ER+1:GOTO1220
  50. 1320 PRINTA$;:POKE212,0:POKEW,PEEK(W)-128:NEXT
  51. 1340 X=0:Y=3:GOSUB8700:PRINT"[146]";:FORM=D+1TOD+4
  52. 1350 PRINTLEFT$(X$(M)+SP$,40)"[151]";:NEXT
  53. 1360 X=0:Y=14:GOSUB8700:PRINT""SP$;
  54. 1370 NEXT
  55. 1400 TE=TI:X=2:Y=16:GOSUB8700:PRINT"[146][156]SPEED:";
  56. 1420 WM=(LW/6)/(TE/3600)
  57. 1425 PRINT INT(WM+.5)"WPM";
  58. 1430 PRINT"   ERRORS:";ER;"";
  59. 1440 GOSUB8000:RETURN
  60. 2000 GOSUB8500
  61. 2020 PRINT"     [203]EYBOARD [211]ELECTION"
  62. 2100 PRINT"      [195]HOOSE ONE:                       ";
  63. 2110 PRINT"[160]        1. [195]OMMODORE KEYBOARD          ";
  64. 2120 PRINT"         2. [211]TANDARD KEYBOARD           ";
  65. 2130 PRINT"         3. [196]VORAK KEYBOARD             "
  66. 2140 GETA$:A1=VAL(A$):IF(A1<1)OR(A1>3)THEN2140
  67. 2150 GOSUB8800:SYS6904:ONA1GOSUB2200,2300,2400:SYS6904:RETURN
  68. 2200 GOSUB8300:KE$="[195]OMMODORE"
  69. 2210 POKE6834,24:POKE6838,27:POKE6824,80:POKE6828,27
  70. 2220 RETURN
  71. 2300 GOSUB8300:KE$="[211]TANDARD"
  72. 2320 POKE6834,136:POKE6838,27:POKE6824,192:POKE6828,27
  73. 2340 FORI=1TO34STEP2:KB$(ASC(MID$(SK$,I,1)))=CHR$(ASC(MID$(SK$,I+1,1))):NEXT
  74. 2390 RETURN
  75. 2400 KE$="[196]VORAK"
  76. 2410 POKE6834,248:POKE6838,27:POKE6824,48:POKE6828,28
  77. 2420 FORI=1TO180STEP2:KB$(ASC(MID$(DK$,I,1)))=CHR$(ASC(MID$(DK$,I+1,1))):NEXT
  78. 2490 RETURN
  79. 3000 NF$="INSTRUCTION.TYP":GOSUB6030:GOSUB8510:P1=FRE(0)
  80. 3010 FORD=1TOTL:X=0:Y=3:GOSUB8700:PRINT"[146]";:FORM=DTOD+7
  81. 3020 PRINTLEFT$(X$(M)+SP$,40);:NEXT:GOSUB8000
  82. 3040 NEXT:RETURN
  83. 5000 LI=1
  84. 5010 X=3:Y=16:GOSUB8700:PRINT"[146]LINE NUMBER";LI
  85. 5020 GOSUB8600
  86. 5030 IFP$<>""THENX$(LI)=P$:LI=LI+1:GOTO5060
  87. 5040 IFLI=1THENRETURN
  88. 5050 GOTO5110
  89. 5060 GOSUB8500:X=0:Y=3:GOSUB8700
  90. 5070 FORM=LI-4TOLI-1:M1=-M*(M>0):PRINTLEFT$(X$(M1)+SP$,39);" ";:NEXT
  91. 5080 GOTO5010
  92. 5110 TL=LI-1:GOSUB8800
  93. 5120 LW=0:FORI=1TOTL:LW=LW+LEN(X$(I)):NEXT
  94. 5130 GOSUB8100:IFNF$=""THEN5210
  95. 5140 OPEN15,8,15:GOSUB8400:IFZ1<>0THEN5200
  96. 5150 OPEN8,8,8,NF$+",S,W":GOSUB8400:IFZ1<>0THEN5190
  97. 5160 PRINT#8,LW
  98. 5170 PRINT#8,TL
  99. 5180 FORI=1TOTL:PRINT#8,X$(I):NEXT
  100. 5190 CLOSE8
  101. 5195 GOSUB8400
  102. 5200 CLOSE15
  103. 5210 RETURN
  104. 6000 GOSUB8100:IF(NF$="")THEN6170
  105. 6030 OPEN15,8,15:GOSUB8400:IFZ1<>0THEN6160
  106. 6100 GOSUB8800:OPEN8,8,8,NF$+",S,R":GOSUB8400:IFZ1<>0THEN6150
  107. 6110 INPUT#8,LW,TL
  108. 6120 FORI=1TOTL:B$=""
  109. 6130 GET#8,A$:IFA$<>CHR$(13)THENB$=B$+A$:GOTO6130
  110. 6140 X$(I)=B$:NEXT
  111. 6150 CLOSE8
  112. 6155 GOSUB8400
  113. 6160 CLOSE15
  114. 6170 RETURN
  115. 7000 REM CONVERT
  116. 7010 OPEN15,8,15:GOSUB8400
  117. 7100 GOSUB8510:X=3:Y=16:GOSUB8700:PRINT"[211][197][209] FILE TO BE CONVERTED";
  118. 7110 GOSUB8600:IFP$=""THEN CLOSE15:RETURN
  119. 7120 OPEN8,8,8,P$+",S,R":GOSUB8400:IFZ1>19THENCLOSE8:CLOSE15:RETURN
  120. 7130 D=D+1:YL$=""
  121. 7140 GET#8,X$:IFST AND 64 THEN 7170
  122. 7150 IFX$<>CHR$(13)THENYL$=YL$+X$:GOTO7140
  123. 7160 X$(D)=YL$+" ":GOTO7130
  124. 7170 X$(D)=YL$+" ":TL=D-1
  125. 7180 CLOSE8:CLOSE15:GOSUB5120
  126. 7190 RETURN
  127. 8000 X=9:Y=17:GOSUB8700:PRINT"PRESS [210][197][212][213][210][206][146] TO CONTINUE"
  128. 8010 GETA$:IFA$<>CHR$(13)THEN8010
  129. 8020 RETURN
  130. 8100 GOSUB8510:X=4:Y=16:GOSUB8700:PRINT"[146] ENTER THE FILENAME"
  131. 8120 GOSUB 8600:NF$=P$:RETURN
  132. 8200 POKEV+4,0:POKEV+1,80:POKEV+4,17
  133. 8210 FORT=1TO30:NEXT
  134. 8230 POKEV+1,0:POKEV+4,0
  135. 8240 RETURN
  136. 8300 FORI=0TO255:KB$(I)=CHR$(I):NEXT
  137. 8320 RETURN
  138. 8400 INPUT#15,Z1,Z2$,Z3,Z4
  139. 8410 IF Z1<19 THEN RETURN
  140. 8420 X=2:Y=16:GOSUB8700:PRINT"[146]DISK ERROR:";
  141. 8430 PRINT"[158]";Z2$
  142. 8440 GOSUB8000:RETURN
  143. 8500 PRINT"[146]";:FORI=1TO9:PRINTSP$;:NEXT:PRINT"";:RETURN
  144. 8510 X=2:Y=16:GOSUB8700:PRINT"[146]";LEFT$(SP$,36)
  145. 8520 X=2:Y=17:GOSUB8700:PRINT"[146]";LEFT$(SP$,36):RETURN
  146. 8600 P=0:P$="":X=0:Y=14:GOSUB8700:PRINT"[164]";LEFT$(SP$,39);:X=0:Y=14:GOSUB8700
  147. 8610 GETA$:IFA$=""THEN8610
  148. 8615 A$=KB$(ASC(A$)):IF(A$="0")AND(PEEK(653)=1)THENA$=")"
  149. 8620 IF(A$=CHR$(20))AND(P>0)THENP=P-1:P$=LEFT$(P$,P):PRINT"[157]  [157][157][164][157]";:GOTO8610
  150. 8630 IFA$=CHR$(13)THEN 8680
  151. 8640 AB=ASC(A$):IF(AB<32)OR(AB>219)THEN8610
  152. 8650 IFP>37THENFORI=1TO4:GOSUB8200:NEXT:GOTO8610
  153. 8660 PRINTA$;:IFA$=CHR$(34)THENPOKE212,0
  154. 8670 PRINT"[164][157]";:P$=P$+A$:P=P+1:GOTO8610
  155. 8680 RETURN
  156. 8700 POKE781,Y:POKE782,X:POKE783,0:SYS65520:RETURN
  157. 8800 GOSUB8510:X=5:Y=16:GOSUB8700:PRINT"[159]PLEASE WAIT":RETURN
  158.